1.6.4 性能测试
1. 压力测试工具
E聊提供了jmeter压力测试工具以及压测脚本,可用用其测试客户端消息的收发延时。
E聊社区版后端版本: v1.10+
jmeter版本: 5.41
jmeter下载地址: 链接:https://pan.baidu.com/s/1AoynGRl9Z_Ov_KbS_kVPcg 提取码:pp43
2. 使用步骤
2.1 启动后端项目
java -jar server-community-deploy-1.0.jar
2.2 启动jmeter
./jmeter.bat
启动后界面如下图:
2.3 导入jmeter压测配置
选择菜单栏"File"->"Open", 打开apache-jmeter-5.4.1下的echatim压测_线程组1.jmx配置文件。
2.4 修改压测配置
在Thread Properties输入项下可以设置该测试下最大启动的线程数量(Number of Threads), 模拟多用户同时访问的情况。
在用户定义的常量下, 需要配置以下常量:
APP_KEY: APP KEY
ADMIN_USER_AUID: 任意一个顾客用户auid(以自己的数据库记录为准)
ADMIN_USER_TOKEN: 任意一个顾客用户密码(以自己的数据库记录为准)
SERVER_HOST: 服务端host
SERVER_HTTP_PORT: 服务端HTTP端口
SERVER_SOCKETIO_PORT: 服务端socket.io端口
2.5 启动压测
选择菜单栏"Run"->"Start"(或点击菜单栏绿色的启动按钮), 点击"查看结果树", 可以跟踪到测试结果。
2.6 压测结果汇总
压测结果保存到一个SQLite格式数据库文件上,你可以使用Navicat 等可视化数据管理工具来查看压测结果。
使用Navicat等工具打开echat_test_plan.db数据库文件,打开records表。
echat_test_plan.db记录了每个jmeter线程发送即时消息的时延,下面是字段相关说明:
client_send_time: 客户端消息发送时间撮(毫秒)
server_time: 服务端接受到消息的时间撮(毫秒)
client_receive_time: 客户端接受到消息的时间撮(毫秒)
client_server_delay: 消息从客户端到服务端的时延(毫秒, 计算:server_time - client_send_time)
server_client_delay: 消息从服务端到客户端的时延(毫秒, 计算:client_receive_time - server_time)